Там и защиты то никакой нету, деоптимизатором прошёлся да и все, код редактируешь одтельно и вставляешь в уже подготовленную карту.
Вот опен карта, там все изи...
Единственное, что приходит в голову - это дамми-юнит размером чуть больше экрана, с моделью в виде белого прямоугольника, параллельного земле. Триггерно можно сделать его невыбираемым, перемещать в точку, куда направлена камера игрока (если центр модели не видно, то всю модель не видно) и задавать цвет с прозрачностью. А зачем в роликах такая информация?
Smart096, баг только в этой карте?
в новых картах бага нету?
если да то стоит проверить импортируемые модели и текстуры (мб часть битая)
но с вероятностью в 60% проблема в системе ибо было много жалоб на баги в вин10
При конвертации моделей из игр в MDX их вес велик как и вес их текстур ! Я оптимизирую и сжимаю модель через MDLvis а текстуры через BLP Laboratory но их вес все еще внушителен ( Есть ли другие варианты среза веса без дефектов материала ?
Нет. Только удаление лишних анимаций. Остальную оптимизацию веса сделает mdlvis.
При импорте некоторых моделей в карту возникает проблема с их выбором при манипуляции ( Передвижения ) словно их Выбор отсутствует , Думаю некоторые с подобным сталкивались ...
Если модель нельзя выделить в игре курсором, у неё отсутствуют collision shapes (формы коллизии). Их можно добавить в War3ModelEditor -> Окна -> Редактор узлов -> правый клик -> Создать форму - > отредактировать размеры и положение. Их можно добавить несколько, чтобы покрыть модель целиком. Они отвечают за взаимодействие модели с курсором.
Один ресурс - один вопрос, после пойдут замечания.
научись правильно выражать свои мысли
наработки тут не кидают (это раздел вопросы а наработки)
если я правильно понял то тебе надо сделать следующее:
составить список играющих игроков
каждые n секунд брать из этого списка 2 случайных игрока и тпшить их героев на арену
после смерти 1 из этих героев тпшить обоих на базу (т.к. проигравший мёртв то тпшнится только победитель)
теперь пройдёмся подробно по пунктам
массив игроков и переменная count типа целочисленная равная 0 изначально
перебираем всех игроков от 0 до 11
если игрок играет то заносим его в массив под индексом count
увеличиваем значение count на 1
триггер с событием/таймер каждые n секунд
в действиях берём случайное число от 0 до count
это индекс первого игрока на дуэли
потом снова случайное число от 0 до count
если оно совпадает с предыдущим числом то снова случайное число от 0 до count
и так до тех пор пока новое число не будет отличаться от первого (делается циклом)
потом используем полученные 2 числа как индексы к массиву игроков и тпшим их героев на арену
как только герой умирает проверяем является ли владелец умершего героя одним из выбранных игроков
потом тпшим обоих героев на базу и выдаём чтото наподобие "игрок выживший_игрок победил"
подробнее в статьях
у легионки в доте 12 абилок, по степеням двойки + 1 +2 +4 и так далее, макс бонус 512 ед. Системы которые повышают некоторые параметры юнитов подобным образом выкладывались 100500 раз, не вижу причин не юзать поиск.
Если вам 1 раз за игру надо апнуть атаку и у героя нету морфов и прочего говна, подойдут руны на доп дмг - они повышают белую атаку, но стоит морфнутся и бонуса нету.
отлов урона делается через событие юнит получил урон
всё остальное описано в статье
от тебя только мозг понадобится и хотя бы 1 рука
атачить можно через хэш/юзердату/хэндл
х1 это предмет свитка Рёв. попытка сделать стаки. добавлял свиток рёв с шансом 20% при ударе.и условие должно проверять наличие уже баффа,если нету дать х1 название свитка,если есть х2 и так до х5,
ScopteRectuS, у тебя где то перезаписывается bj_lastCreatedUnit
причём происходит это после первой итерации GroupEnumUnitsInRange
а вообще не стоит юзать стандартные бж переменные
т.к. они могут конфликтовать с другими системами
используй приватные переменные
если после перехода на приватные глобалки проблема останется то скопируй систему на отдельную карту и кинь эту карту сюда
буду тестить разные варианты
Переделывайте юнитов, с нуля. Как и код подправьте, ид юнитов\предметов (да всего) это числа от N и до хрен знает сколько, это все данные в таблице, когда удаляете эти обьекты остаются незанятые ячейки, ну из 250 юнитов, осталось только 150, 100 ячеек пустые вот и багует редактор.
Собственные попытки в студию, что не получается?
Напомним - ЭТО НЕ СТОЛ ЗАКАЗОВ, здесь задают вопросы про реализацию тех или иных вопросов, спрашивают про ошибки, оптмизацию, отдельные функции. Я не увидел в вашем вопросе ничего кроме невнятного описания механики способности, " вокргу кого то там огненные столбы возникают, и еще порча"...
Filius Dei, во вредные советы подъехали...
Русификатор очень поможет тем кто собрался ломануть чужую карту и сделать её мод, прям ваще жир...
Потом нубам вроде сударя не стоит бежать ломать чужую карту, чето там пытатся копировать - это все бесполезно, недавно был похожий вопрос - помогите взломать карту за вознаграждение, карту сломали - ну а дальше что? Он неспособен ничего сделать потому что просто не понимает как?
Играя в некую карту вы мните себя великими балансерами и картоделами, мол да чё там, шяс подправлю пару значений и все будет норм - нет не будет, это не так просто как может показаться, без понимания устройства карты и знания Jass вам нечего там делать, вы тупо ничего не сможете изменить, да даже скопировать и вставить!
Помните что без труда не выловишь и рыбку из пруда, т.е изи способов в 1 кнопку взять и запилить чужую карту так как вам хочется или вдруг стащить всех героев себе в карту нет, а уж теболее не случится так что вам кто то возьмет и все это сделает вам за спасибо...
Zhenya17, ты хотя бы основные статьи прочти и учебник 1 класса по логике
какой по твоему должна быть применяемая способность если способность никто не применяет?
когда прочтёшь то пикай на карте нужных тебе героев и удаляй у них нужную тебе способность
Да у тебя куча дыр, во-первых ты не запустил триггер 115 области lumber direction, и оно соответственно не реагирует на событие. Во-вторых перепроверь gold проверку условия на да или нет в той карте которую ты отправил стоит нет
А золото не движется потому что ты ожидание 0,5 сек поставил а область в милисекунде от изначальной то есть триггер не успевает запуститься
да, сейчас вообще обратил внимание что текстуры идущие в комплекте не воспринимаются почему-то, а именно "Shield.blp".
Все равно проблема не решилась, вроде бы смог заменить текстуру, которую не видел но варик не воспринимает модель.
1
Afterdeath, скрин не могу, я с мобильного сейчас. Текстом напишу, по памяти.
Действия:
Pick every unit in playable map area and do multiple actions:
If picked unit belongs to ally of (Игрок 1) = да then (это союзник игрока 1).
Hide picked unit.
Если использовать событие - юнит завершает применение способности - цель не ловиться. Нужно либо сохранить её раньше, либо делать таймер с задержкой. По функциональности лучше второй вариант, можешь добавить полоску каста на текстаге, или еще что-нибудь.
незнаю поможет или нет но пробни через кустом скрипт написать это AddUnitAnimationProperties(u, "Alternate", false)
где u - это твой юнит и советую перед ней поставить паузу тригера на 0.1 хотяб
MrSlendyBoy, еще раз, анимация может быть только Channel (спелл сам не может выбрать Channel 1, 2 -10) Проигрывайте анимацию по индексу триггерно при применении способности.
GRESHNIK1, зачем тебе бафф? Применяеш каналв юнита, триггер делаешь который ждет каста твоей абилки, потом создаеш дамика с молотками бурь к примеру и пускаеиш их в цель и юнитов рядом с целью...
Делай call UnitMakeAbilityPermanent(u, true,'A000') ) .
Где вместо A000 твоя абилка.
Если абила спеллбучная, то все спеллбуки тоже надо вживлять.
Перманент-абилы не пропадают после морфа и анморфа. Просто добавленные - пропадают.
not_name:
я карту посмотрел, да, пытался сделать похожее
только там с очередью приказов шляпа выходит, поэтому я лучше сделаю все визуально
в общем, реализовал, как и говорил выше - при смерти сразу воскрешаю героя на месте гибели, пауза, анимация, таймер, по прошествии таймера - выдаю все нужное, при повторной смерти - забираю
адекватно работает с крестами
Чтобы увеличить высоту декорации в редакторе, нужно выбрать ёё а затем нажать комбинацию клавиш Ctrl+Page Up нужное количество раз. (Чтобы снизить Ctrl+Page Down.)
Ну я сделал, короче, добавив два триггера. Один отлавливает любой приказ дамочки во время сальто и устанавливает ей скорость анимации в 10000х(время таймера+0,01)%, потом устанавливает анимацию соответствующего сальто и запускает таймер на 0,01 секунду. Второй по истечению этого таймера устанавливает дамочке скорость анимации 100%.
Выглядит временами не особо гладко, но в целом меня устраивает. Только надо немножко подкорректировать анимации модели.
А ещё не поленюсь тебе скинуть карту близов, из которой тоже можно учесть несколько простых и хороших уроков
Также на форму выложена открытая дота, можно дергать все что хочется и изучать, надеюсь тебе поможет и ты разберешся
Чтобы иметь и модель с обычной текстурой и с другой, с помощью программы для извлечения моделей из Warcraft 3 (я пользуюсь обычно Warcraft 3 Viewer, поищи на сайте), там ищешь справа в папках твою модель, извлекаешь её к себе на компьютер.
Потом открываешь программой mdlvis (основная программа для моделлинга, тоже здесь есть) модель, сразу выделяешь её и нажимаешь кнопку UV-карты или модули - редактор текстур.
Внизу есть путь для текстуры, измени на название скачанной. Нажми enter, сохрани модель.
Если текстура специально для той модели, переходи к следующему пункту.
Кинь текстуру и модель в папку с вариком и открывай WE. У тебя стандартная модель и модель с другой текстурой.
Возможно, звучит сложно, но я привык, несколько кликов - и текстура изменена.
ну вот в чём твоя ошибка: Ты изменил название текстуры, а значит ты изменил и пути, тебе нужно зайти в war3modelEditor и там уже открыв модель выбрать вкладку: Windows=>Texture Manager, где будет список текстур, ты удаляешь 1 старую текстуру, которая у тебя была и добавляешь новую, при этом модель с текстурой должны лежать в одной папке, которая не содержит кириллицы (например путь должен быть d:\Users\User\Desktop\moroz - без русских букв ).
Переименовать новую текстуру на старую по идее не имеет смысла, потому что опять же ты сохранил её без текстуры, а => испоганил, накосячил, сломал (называй как хочешь).
Melissa, заменяемая текстура дерева работает так:
создаём слот "none", редактируем его — вписываем ИД.
Соответственно, нужно просто добавить нормальную текстуру. Там уже можно будет настраивать материалы и удалять ненужные.
Решения не было найдено! Самый верный способ сделать свою систему улучшений для юнитов, разбивая их на группы по признаку кол-ва грани у кости и кол-во костей, и в зависимости от этого повышать урон
Никак, очень сложное заклинание (близзарды пряма изощрялись и собирали совещание, как бы это сделать посложнее - Dracolich(c))
Там бафф по сути триггер с особым событием которое запилили специально для этой способности - юнит потерял ману от каста заклинания, до него можно добраться с помощью мемхака - но костыльно и сложно.
Баши и криты можно отловить косвенно, по получению урона \баффа. Но это ненадежный способ, атака обрабатывается в момент замаха и движок узже знает попадет юнит или промажет, забашит или кританет по цели, еще за долго до самого удара. Поэтому самый рациональный способ - триггерные аналоги этих пассивок - крит, ну тупо перед атакой вручает абилку крита со 100% шансом и усе, баш так же. Особо изворотливые могут сделать детект физического урона и сделать баш из дамми каста молотка бурь (нам же надо только отловить сам факт удара) ну а крит посложнее, но тоже вполне реализуемо.
Собственные попытки в студию, что не получается?
Напомним - ЭТО НЕ СТОЛ ЗАКАЗОВ, здесь задают вопросы про реализацию тех или иных вопросов, спрашивают про ошибки, оптмизацию, отдельные функции. Я не увидел в вашем вопросе ничего кроме невнятного описания механики способности, " вокргу кого то там огненные столбы возникают, и еще порча"...
Filius Dei, во вредные советы подъехали...
Русификатор очень поможет тем кто собрался ломануть чужую карту и сделать её мод, прям ваще жир...
Потом нубам вроде сударя не стоит бежать ломать чужую карту, чето там пытатся копировать - это все бесполезно, недавно был похожий вопрос - помогите взломать карту за вознаграждение, карту сломали - ну а дальше что? Он неспособен ничего сделать потому что просто не понимает как?
Играя в некую карту вы мните себя великими балансерами и картоделами, мол да чё там, шяс подправлю пару значений и все будет норм - нет не будет, это не так просто как может показаться, без понимания устройства карты и знания Jass вам нечего там делать, вы тупо ничего не сможете изменить, да даже скопировать и вставить!
Помните что без труда не выловишь и рыбку из пруда, т.е изи способов в 1 кнопку взять и запилить чужую карту так как вам хочется или вдруг стащить всех героев себе в карту нет, а уж теболее не случится так что вам кто то возьмет и все это сделает вам за спасибо...
nvc123, ну так потому я и подписался как Кэп. Просто тема почему-то до сих пор не закрыта, вот я и подумал, что твой ответ не понятен. Ибо, уложить такую формулировку в одно слово - это, конечно, мастерство :)
если это каст который не сбивает приказ то нужно безумие юзать либо сохранять приказ (теряется последовательность)
если же это скилл который имеет малое время каста то либо просто настроить скорости каста/анимации либо делать как сказал ссср Starman2222, для новичков у нас есть вот это
прочти разделы 1 и 2 и научись внятно объяснять что тебе нужно
потом возвращайся
Ну как сказать, юнит является юнитом секунды 3 после смети (или сколько там установлено время смерти), потом его уже нету на карте, поэтому можно и не искать, но герои сидят в памяти пока их не удалят, в отличии от обычных юнитов, но всеравно их уже не существует в понимании движка на уровне бегающих и дерущихся юнитов.
Не удивительно, кто так делает?
Никаких вейтов в гуппах использовать нельзя, что за глупость! Для задержек существуют таймеры!
Слишком низкое время жизни дамми юнита, ставь секунд 5, то рисукуешь убить юнита неизвестно кем.
Ты не даешь видимость и не создаешь даммика за нейтрально пассивных, а зря! Даммик может не удивить в кого ему кинуть корни, цель можеть быть в тумане войны.
Чтобы кинуть корни в случайных юнитов в радиусе, есть особое дейстие GroupPickRandomUnit().
Спелл нужно переписать с 0, так же удалить русс. триггеры!
Не нашёл способа как отредактировать модель. Вообще данный юнит у меня под locust'ом поэтому принял решением для себя следующее:
триггерное увеличение юнита в 9999 раз. Партиклы исчезают :)
(если уменьшать размер до 0 - их видно)
Эмм что за ерунда, сократил код, убрав всё лишнее, но утечки все равно остаются, по 1.5 - 2 хэндла за каждое нанесение урона (тип хэндла не знаю как посмотреть). Когда триггер отключаешь, то всё нормально.
Сокращенный код
function SDMSCreateTextTag takes nothing returns nothing
local unit u=GetTriggerUnit()
local unit s=GetEventDamageSource()
local integer i=GetConvertedPlayerId(GetOwningPlayer(u))
local texttag tt=CreateTextTag()
local real dmg=GetEventDamage()
if ( dmg > 1.00 ) and ( dmg < 9999.00 ) then
if GetPlayerId(GetOwningPlayer(u))==12 then
call SetTextTagText(tt, "|cff9db9eb-"+I2S(R2I(dmg))+"|r", 0.023)
else
call SetTextTagText(tt, "|cffffa500-"+I2S(R2I(dmg))+"|r", 0.023)
endif
call SetTextTagPosUnit(tt, u, 0)
call SetTextTagColor(tt, 255, 255, 255, 255)
call SetTextTagVelocity(tt, 0.05325*Cos(90 * bj_DEGTORAD), 0.05325*Sin(90 * bj_DEGTORAD))
call SetTextTagPermanent(tt, false)
call SetTextTagLifespan(tt, 1.0)
call SetTextTagFadepoint(tt, 0.0)
endif
call PolledWait(2.0)
call DestroyTextTag(tt)
set u=null
set s=null
set i=0
set dmg=0
set tt=null
endfunction
function SDMSTriggerRegisterUnitDamaged takes nothing returns nothing
call TriggerRegisterUnitEvent(udg_SDMStrigger,GetEnteringUnit(),EVENT_UNIT_DAMAGED)
endfunction
function theSDMSTriggerActions takes nothing returns nothing
local trigger UnitEnter=CreateTrigger()
call TriggerRegisterEnterRectSimple(UnitEnter, gg_rct_Arena)
call TriggerAddAction(UnitEnter,function SDMSTriggerRegisterUnitDamaged)
set UnitEnter=null
endfunction
function InitTrig_the_SDMS_Trigger takes nothing returns nothing
local trigger tr=CreateTrigger()
set udg_SDMStrigger=CreateTrigger()//Тут также меняется название глобальной переменной типа триггер.
call TriggerAddAction(udg_SDMStrigger,function SDMSCreateTextTag)
call TriggerRegisterTimerEventSingle(tr,0.0)
call TriggerAddAction(tr,function theSDMSTriggerActions)
set tr=null
endfunction
Wait вызывает утечки ((
Пришлось делать через таймер
Решения не было найдено! Самый верный способ сделать свою систему улучшений для юнитов, разбивая их на группы по признаку кол-ва грани у кости и кол-во костей, и в зависимости от этого повышать урон
VovkaShyt, будет, хоть 10 хоть 0,01 будет снижаться количеством брони, а эти параметры - снижение от типа брони, сила тьмы игнорирует тип брони, а вот атака героя не игнорирует тип защиты зданий, здания, вспомните как долго в мили картах ломаются здания.
local real x = GetRandomReal(GetRectMinX(GetPlayableMapRect()), GetRectMaxX(GetPlayableMapRect()))
local real y = GetRandomReal(GetRectMinY(GetPlayableMapRect()), GetRectMaxY(GetPlayableMapRect()))
...
(действия с координатами)
...
Любые действия с локейшном можно переделать под координаты, если не используется z-координата, как сказано выше. Но z-координату используют не только лишь все, мало кто может это делать.
И обнулять ничего не придётся, так как действительное число не утекает.
кхе, всё вроде можно, но объяснять долго, третье простое, просто при юзании способности в триггерах добавь условие сравнения, если юнит цель применяемой способности нежить, тогда действие о дополнительном уроне, например если способность наносит 100, то 20% это 20,в действии приказать применяющий юнит нанести урон юнит цель применяемой способности 100+(0.20х100), перед этим 100 можно установить, как переменную, например если с каждым уровнем урон растёт на 100, то переменная int=100хУровень способности способность у применяющий юнит.
Сложно объяснил?
Немного теории. В подобных моделях используются тэги ("upgrade first", "upgrade second"). На разных уровнях улучшения проигрываются анимации с разными тэгами. Виден один вариант здания, при этом остальные варианты невидимы.
В принципе, можно в настройках для разных юнитов выбрать разные модели, но если нужно именно всё в одной - можно обратиться за помощью в тему: xgm.guru/p/wc3/needmodels
» WarCraft 3 / Описание карты
» WarCraft 3 / Объем модели
» WarCraft 3 / Манипуляции с ИИ и некоторые проблемы
» WarCraft 3 / Дуэль
» WarCraft 3 / Опыт для героев
» WarCraft 3 / Перевод в BLP
» WarCraft 3 / Где ошибка?
» WarCraft 3 / Триггер
» WarCraft 3 / Свой бот в гарене
» WarCraft 3 / Не роботает модель
» WarCraft 3 / Как сделать такое как на скрине?
» WarCraft 3 / Что не так?
» WarCraft 3 / Анимации и способности
» WarCraft 3 / Морф
» WarCraft 3 / Помогите с картой
» WarCraft 3 / Волны мобов
» WarCraft 3 / Импортирование текстур
» WarCraft 3 / Смена текстуры
» WarCraft 3 / Кости атаки
» WarCraft 3 / Триггер
» WarCraft 3 / Случайный каст
» WarCraft 3 / Партиклы
» WarCraft 3 / Тип дополнительного урона
» WarCraft 3 / Несколько простых вопросов